home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Browsers, Managers & Extensions / Mozilla Weave 0.2.7 / latest-weave.xpi / chrome / sync.jar / content / log.js < prev    next >
Text File  |  2008-07-08  |  3KB  |  104 lines

  1. var Ci = Components.interfaces;
  2. var Cc = Components.classes;
  3. var Cr = Components.results;
  4.  
  5. let gSyncLog = {
  6.   get _stringBundle() {
  7.     let stringBundle = document.getElementById("weaveStringBundle");
  8.     delete this._stringBundle;
  9.     this._stringBundle = stringBundle;
  10.     return this._stringBundle;
  11.   },
  12.  
  13.   init: function() {
  14.     let tabbox = document.getElementById("syncLogTabs");
  15.     let index = document.getElementById("extensions.weave.log.selectedTabIndex");
  16.     if (index.value != null)
  17.       tabbox.selectedIndex = index.value;
  18.     this.loadLogs();
  19.   },
  20.  
  21.   onSelectionChanged: function() {
  22.     let tabbox = document.getElementById("syncLogTabs");
  23.     let index = document.getElementById("extensions.weave.log.selectedTabIndex");
  24.     index.valueFromPreferences = tabbox.selectedIndex;
  25.   },
  26.  
  27.   loadLogs: function() {
  28.     let dirSvc = Cc["@mozilla.org/file/directory_service;1"].
  29.     getService(Ci.nsIProperties);
  30.  
  31.     let brief = dirSvc.get("ProfD", Ci.nsIFile);
  32.     brief.QueryInterface(Ci.nsILocalFile);
  33.  
  34.     brief.append("weave");
  35.     brief.append("logs");
  36.     brief.append("brief-log.txt");
  37.  
  38.     if (brief.exists())
  39.       document.getElementById("sync-log-frame").
  40.         setAttribute("src", "file://" + brief.path);
  41.     else
  42.       document.getElementById("sync-log-frame").
  43.         setAttribute("src", "chrome://weave/content/default-log.txt");
  44.  
  45.     let verbose = brief.parent.clone();
  46.     verbose.append("verbose-log.txt");
  47.  
  48.     if (verbose.exists())
  49.       document.getElementById("sync-log-verbose-frame").
  50.         setAttribute("src", "file://" + verbose.path);
  51.     else
  52.       document.getElementById("sync-log-verbose-frame").
  53.         setAttribute("src", "chrome://weave/content/default-log.txt");
  54.   },
  55.  
  56.   saveAs: function() {
  57.     let tabbox = document.getElementById("syncLogTabs");
  58.     let index = tabbox.selectedIndex;
  59.   
  60.     let dirSvc = Cc["@mozilla.org/file/directory_service;1"].
  61.     getService(Ci.nsIProperties);
  62.   
  63.     let file = dirSvc.get("ProfD", Ci.nsIFile);
  64.     file.QueryInterface(Ci.nsILocalFile);
  65.   
  66.     file.append("weave");
  67.     file.append("logs");
  68.   
  69.     if (index == 0)
  70.       file.append("brief-log.txt");
  71.     else
  72.       file.append("verbose-log.txt");
  73.   
  74.     if (!file.exists()) {
  75.       alert(this._stringBundle.getString("noLogAvailable.alert"));
  76.       return;
  77.     }
  78.   
  79.     let backupsDir = dirSvc.get("Desk", Ci.nsILocalFile);
  80.     let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
  81.     let filePickerTitle = this._stringBundle.getString("filePicker.title");
  82.     fp.init(window, filePickerTitle, Ci.nsIFilePicker.modeSave);
  83.     fp.appendFilters(Ci.nsIFilePicker.filterAll);
  84.     fp.displayDirectory = backupsDir;
  85.     fp.defaultString = "Weave Sync.log";
  86.   
  87.     if (fp.show() != Ci.nsIFilePicker.returnCancel) {
  88.       if (fp.file.exists())
  89.         fp.file.remove(false);
  90.       file.copyTo(fp.file.parent, fp.file.leafName);
  91.     }
  92.   },
  93.  
  94.   clear: function SyncLog_clear() {
  95.     Weave.Service.clearLogs();
  96.     document.getElementById("sync-log-frame").
  97.       setAttribute("src", "chrome://weave/content/default-log.txt");
  98.     document.getElementById("sync-log-verbose-frame").
  99.       setAttribute("src", "chrome://weave/content/default-log.txt");
  100.   }
  101. }
  102.  
  103. window.addEventListener("load", function(e) { gSyncLog.init(e); }, false);
  104.